const numbers = [11, 12, 13, 14, 15];

let as = numbers.map((item, index, arr) => {
  arr[index] = item + 10;
  return (item = item - 10);
});

// console.log(numbers);
// console.log(as);

// 修改number类型数据为string
// 针对这种简单的设计，可以通过lodash中的mapValue方法来实现
function changeToNum(res) {
  let obj = {};
  Object.keys(res).map((item) => {
    if (typeof res[item] === "number") {
      obj[item] = res[item].toString();
    } else {
      obj[item] = res[item];
    }
  });
  return obj;
}

let res = {
  a: 1,
  b: "2",
  c: {
    d: 3.14,
    e: {
      f: 5,
    },
  },
};
// console.log(changeToNum(res));
// 这个写法不能保证深层嵌套的数据被实现，这里就可以使用递归调用的方式

function deepChangeToNum(res) {
  let obj = {};
  for (let key in res) {
    // 检查属性是否为自有属性，防止原型污染
    if (res.hasOwnProperty(key)) {
      const value = res[key];
      if (typeof value === "object" && value !== null) {
        // console.log(key, value);
        obj[key] = deepChangeToNum(value);
      } else if (typeof value === "number") {
        obj[key] = value.toString();
      } else {
        obj[key] = value;
      }
    }
  }
  return obj;
}
console.log(deepChangeToNum(res));
